1. Field of the Invention
The present invention relates to interfaces between processors.
2. Description of Related Art
The time required to find an item stored in a memory can be reduced considerably if stored data can be identified for access by the content of the data itself rather than by an address. A memory unit accessed by content is called a content addressable memory (CAM) or associative memory. Binary CAM architectures store 1 and 0 data. Ternary CAM architectures store 1, 0, and don't care “x” data.
CAMs are well known. They can be accessed simultaneously and in parallel on the basis of data content rather than by specific address or location. When a word is written in a CAM, no address is given. The CAM is capable of finding an empty unused location to store the word. When a word is to be read from a CAM, the content of the word, or part of the word, is specified. The CAM locates all words which match the specified content and marks them for reading. If the specified content (the “compared”) is found in multiple locations, the CAM may “prioritize” the result and return the “highest” value (often defined as the lowest address).
Because of its organization, the CAM is well suited to do parallel searches by data association. A CAM is typically more expensive than a RAM because each cell must have storage capacity as well as logic circuits for matching its contents with an external argument. For this reason, CAMs are often used in applications where the search time is critical and must be short.
Telecommunications applications often have time-critical searches and therefore have been considered well-suited for CAMs. In telecommunications, the process of identifying traffic elements (e.g., frames, packets, and cells) is known as “classification.” Specific applications dictate the required degree of differentiation of traffic elements and the criteria by which they are distinguished. Classification at fine granularity for large numbers of traffic flows at wire-speed is a problem space typically requiring hardware-based solutions. However, because of the application dependence, typical hardware solutions have been inflexible.